
#include <Paineis/BotaoCheckCor.h>
#include "PetLab.h"


BotaoCheckCor::BotaoCheckCor(int x, int y, int cor1, int cor2, int cor3, void (Tela::*func)(bool))
: Botao(14, 14, x, y),
  m_checked(true),
  m_cor1(cor1),
  m_cor2(cor2),
  m_cor3(cor3),
  m_func(func)
{
    for(int i=0; i<14; i++)
        for(int j=0; j<14; j++)
            Matriz()[i][j] = m_cor1;

    for(int i=2; i<12; i++)
        for(int j=2; j<12; j++)
            Matriz()[i][j] = m_cor2;
}
  
bool BotaoCheckCor::AoBaixarEsq(EventoBaixarEsq ev)
{
    TelaA&   telaA   = *(g_PetLab->m_PainelA->Tela());
    TelaB&   telaB   = *(g_PetLab->m_PainelB->Tela());

    m_checked = !m_checked;
        
    if(m_checked)
    {
        for(int i=0; i<14; i++)
            for(int j=0; j<14; j++)
                Matriz()[i][j] = m_cor1;
    
        for(int i=2; i<12; i++)
            for(int j=2; j<12; j++)
                Matriz()[i][j] = m_cor2;
            
        (telaA.*m_func)(true);
        (telaB.*m_func)(true);
    }
    else
    {
        for(int i=0; i<14; i++)
            for(int j=0; j<14; j++)
                Matriz()[i][j] = m_cor3;
        (telaA.*m_func)(false);
        (telaB.*m_func)(false);
        for(int i=0; i<14; i++)
            for(int j=0; j<14; j++)
                if(i==j || i+1==j || i-1==j || 14-i==j || 14-i-2==j || 14-i-1==j)
                    Matriz()[i][j] = RGBA(0,0,0,255);
    }

    ev.janela->Redesenhar(this);

	return false;
}
